Cygnus glossary

Contents|Previous|Next
Cygnus glossary

The following glossary documentation lists some terms that either often or sometimes require definition. Many may have common usage in the technical community, while some may only be familiar to Cygnus engineers when needing to designate tools, platforms or processes.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

The following glossary describes some terms that either often or sometimes require definition. Many terms may have common usage in the technical community, while some may only be familiar to Cygnus engineers when needing to designate tools, platforms or processes.
For more etymology and history of the technical jargon, see the following HTML documentation:

- `http://dent.tky.hut.fi/jargon/The+Jargon+Lexicon`
- `http://www.facstaff.bucknell.edu/rbeard/diction.html`
- `http://wombat.doc.ic.ac.uk/foldoc/index.html`
- `http://grouper.ieee.org/groups/610/p610home.html`
- `http://dxsting.cern.ch/sting/glossary.html`
- `http://www.access.digex.net/~ikind/babel.html`
- `http://pespmc1.vub.ac.be/ASC/INDEXASC.html`
- `http://mspress.microsoft.com/mspress/products/1031/`

This list of URLs is by no means exhaustive of the available content. Accordingly, it will continue to grow as the technology and the technology community grows.

## A

###### `a.out`

The original UNIX object file format, still in use on SunOS, though not Solaris operating systems. Supports only three sections.

###### `a29k`

AMD 29000 family of RISC processors.

###### ABI

Application Binary Interface, which defines how programs should interface with the operating system, including specifications such as executable format, calling conventions, and chip-specific requirements.

###### accumulator

A register being used for arithmetic or logic (as opposed to addressing or a loop index), especially one being used to accumulate a sum or count of many items.

###### address

A number identifying a location in the computer's memory that informs the computer where to find information such as a file name or data for processing.

###### ADP

Angel Debug Protocol, a protocol used with ARM's newer Angel monitor and their Embedded ICE.

###### AIX

IBM's version of UNIX for RS/6000 and PowerPC. Pronounced aches .

###### Alpha

Name for Digital's family of 64-bit RISC processors.

###### API

Application Programming Interface, defining how programmers write source code that makes use of a library's or operating system's facilities by accessing the behavior and state of classes and objects.

###### ARC

Argonaut RISC Chip, a simple RISC processor designed into custom chips.

###### architecture

A term for a family of processors, generally used in reference to features common to all members.

###### ARM

Acorn RISC Machine's family of RISC processors. Also, Annotated Reference Manual for C++, often used to describe a name-mangling style.

###### array

A collection of data items, all of the same type, in which integers designate each item's position.

###### ASCII

American Standard Code for Information Interchange. The predominant character set encoding of present-day computers. The modern version uses 7 bits for each character, whereas most earlier codes (including an early version of ASCII) had fewer assignments.

###### assembler

A tool that produces object files from assembly code like the GNU assembler, `gas`.

## B

###### backend

The set of functions which appear in a particular target vector.
The implementation within BFD of a specific object file format.

###### backtrace

A summary of how a program got where it is with a debugging process.

###### `bar`

Used very generally as a sample name for absolutely anything, especially programs and files. Etymology from Army slang acronym, FUBAR (bowdlerized to mean "Fouled Up Beyond All Repair").

###### `bash`

A basic command shell ("Bourne Again Shell"), typically for UNIX or Linux operating systems, based on the Bourne shell. See shell .

###### BDM

Background Debugging Mode, referring to the ability of the CPU32 sub-family (68302, 68360, etc.) of Motorola 68000 series chips and Motorola PowerPC chips to be directly controlled through a special set of pins.

###### BFD

Binary File Descriptor, the library used by GNU tools to read and write object files.

###### bi-endian

Refers to a processor or toolchain that supports both big-endian and little-endian code.

###### big-endian

A byte-ordering scheme in which the most significant bytes are at lower addresses (big-end-first), such as the Motorola 68000 family of microprocessors and most of the various RISC designs, which use a big-endian microprocessor.

###### bignum

A multiple-precision computer representation for very large integers. Most computer languages provide a kind of " integer-based" data, but such computer integers are usually very limited in size; to work with larger numbers, use floating-point numbers, which are usually accurate to only six or seven decimal places. Computer languages that provide bignums can perform exact calculations on very large numbers, such as 1000! (the factorial of 1000, which is 1000 x 999 x 998 x ... x 2 x 1).

###### binary

Base-two number system, of which the only digits are 0 and 1. Used as a signal for processing as either off (0) or on (1); from right to left, the digits have a binary value of 1, 2, 4, 8, 16, and so on in multiples of 2, exponentially (the binary number of 101, for instance, is equivalent to the decimal number, 5, and the binary number of 1011 is equivalent to the decimal number, 13). See also unary and ternary. Compare floating point noation.

###### binary operator

An operator that has two arguments.

###### Bison

The GNU parser generator, a workalike for yacc.

###### bit

A computational quantity that can take on one of two values, such as true and false or 0 and 1. A bit is said to be set if its value is true or 1, and reset or clear if its value is false or 0. One speaks of setting and clearing bits. To toggle or invert a bit is to change it, either from 0 to 1 or from 1 to 0.

###### boot/ bootstrap

The action for a machine to run through its opening processes, for instance, for a compiler's initialization. Known by having to put on boots by pulling on the sidestraps before going out in the world.

###### breakpoint

What makes a program stop whenever a certain point is reached in a debugging process. See also watchpointand tracepoint.

###### BSD

Berkeley Software Distribution, a family of UNIX software tools from U.C. Berkeley, originally licensed from AT&T, and later upgraded to all-free code. Formed the basis for SunOS, incorporating paged virtual memory, TCP/IP networking enhancements, among other features.

###### BSP

Board Support Package, typically referring to the low-level code or scripts that build programs running on a particular chip on a particular circuit board. Also refers to the ROM that boots anRTOS onto a specific board. Exact meaning varies.

###### buffer overflow

What happens when you try to stuff more data into a buffer than the buffer has been constructed to hold.

###### buffer

A holding area in a program's memory (like an Emacs buffer) for text waiting to be edited.

###### bug

A problem with software that needs a patch. Etymology obscured by various myths such as the Naval Surface Warfare Center story, with a picture of the logbook and the purported moth taped into it, recorded in the "Annals of the History of Computing" [Vol. 3, No. 3 (July 1981), pgs. 285--286], as well as the electrical handbook, " Hawkin's New Catechism of Electricity" [Theo. Audel & Co.], which says, "The term, bug, is used to a limited extent to designate any fault or trouble in the connections or working of electric apparatus."

###### build

The process of configuring, compiling, and linking a set of tools. Also used as a noun, to denote the results of the process.

###### Byacc

Berkeley yacc , version in BSD UNIX. See also yaccand Bison.

###### byte

A sequence of eight bits.

###### bytecode

Machine-independent code generated by a compiler and executed by an interpreter.

## C

###### Canadian cross

A cross-compilation in which a program being compiled is a cross compiler for some other host/target pair. Example: building a Motorola 68000 cross compiler that runs on a 486 PC using a Sun SPARC station.

###### canonical

The usual or standard state or manner or usage in technical terminology, derived from computation theory and mathematical logic, meaning that, for instance, two formulas such as 1 + x and x + 1 are said to be equivalent because they mean the same thing, but the second one is in canonical form because it is written in the usual way, with the highest power of x first.

###### CHILL

A high-level language popular in Europe for telecommunications programming.

###### CISC

Complex Instruction Set Computer. This class of machines typically has variable-length instructions with a variety of addressing modes. Examples include x86, m68k, and vax.

###### classes

A class definition defines instance and class variables and methods, as well as specifying the interfaces the class implements and the immediate superclass of the class. In Java, a type that defines the implementation of a particular kind of object.

###### `class` file

The Java binary file format for the Java Virtual Machine (JVM) for the ``.class`' file that, after compiling, contains bytecode and symbols (like an object file); see also bytecode and JVM.

###### COFF

Common Object File Format. This format appeared with UNIX SVR3, formerly common for UNIX, and still used by some embedded systems. The Microsoft PE format for Windows is based on COFF.

###### COFF debugging

The debug format that is defined as part of the COFF specification.

###### comment

In source code, explanatory text that the compiler ignores. In most code, comments are delimited using `//` or `/*` ...`*/` .

###### compiler

A tool that translates high-level source code in a language such as C or Pascal into machine-executable programs. The term may also refer specifically to the tool that translates from source to assembly language.

###### copyleft

The copyright notice for GNU Emacs and other GNU software, the GNU General Public License, which grants reuse and reproduction rights to all users.

###### critical section

A segment of code in which a thread uses resources (such as certain instance variables) that can be used by other threads, but that must not be used by them at the same time.

###### `CRLF`

A carriage return (`CR`; for the ASCII, 0001101...for the octal, \015...for the hex, 0x0f) followed by a line feed (`LF`; for the ASCII, 0001010...for the octal, \012...for the hex format, 0x0c).

###### cross-configuration

A different target machine than the development tools themselves, which run on the host--for example, when working on a software application with a SPARC station that generates and debugs code for a Motorola Power PC-based board.

###### `csh`

C shell, a c ommand sh ell for users to type commands, interacting with the operating system. Uses a C-like command syntax, typically for UNIX/Linux developers.

###### CVS

Concurrent Version System, a free source version control system currently used for all sources at Cygnus.

###### CX/UX

A version of UNIX produced by Harris Computer Systems.

###### CygMon

Cygnus' standard ROM monitor.

###### Cygnus

The leading provider of single-source, UNIX, and NT desktop and cross-platform development tools for 32- and 64-bit microcontrollers. The company strategy is to continue to extend the functionality and performance of its development tools, as well as to deliver innovative software component technologies for embedded systems.
With Roman etymology (for swan), named for the constellation, Cygnus is within the plane of our Milky Way galaxy and is 2,500-10,000 light-years away, forming a cross. The brightest star in Cygnus is Deneb.

###### Cygnus Insight

The GNUPro visual debugger (formerly known as GDBTk).

###### Cygwin

Cygnus' UNIX emulation library for Windows 95 and NT operating systems.

## D

###### D10V

A small VLIW processor developed by Mitsubishi, featuring 32-bit instructions each, with two 15-bit subinstructions.

###### D30V

A VLIW processor developed by Mitsubishi, and intended for use in video processing applications (camcorders and DVD players). It has 64-bit instructions each, with two 30-bit subinstructions.

###### daemon

A program that is not invoked explicitly, but lies dormant waiting for some condition(s) to occur. The idea is that the perpetrator of the condition need not be aware that a daemon is lurking.

###### dbx

The standard debugger on many UNIX systems.

###### debug format

The layout of debugging information within an object file format. Debug formats include stabs, COFF, DWARF, and DWARF 2.

###### debug protocol

A mechanism by which a debugger examines and controls a program being debugged.

###### debugger

A tool that allows programmers to examine and control a program, typically for the purpose of finding errors in the program.

###### DejaGNU

The regression testing framework used at Cygnus, based on `tcl`and `expect`.

###### delta

A quantitative change, especially a small or incremental one, used in general in physics and engineering. Often represented as or .

###### `diff`

A UNIX command to generate a listing of changes, especially giving differences between (and additions to) source code or documents. See also patch.

###### DJGPP

D.J. Delorie's DOS port of GNU, using the GO32 DOS extender. It includes all the standard GNU tools, and runs in the Windows environments.

###### dynamic link

A program's link against a shared library that, when run, is locateable by the appropriate shared library, arranging to have inclusion in the program that is running.

###### dynamic object

Another name for an ELF shared library.

###### DWARF

A debugging format based on attribute records. Versions include DWARF 1, 1.1, 2, and extensions to 2.

## E

###### E7000

An ICE produced by Hitachi for its SH and H8/300 processors.

###### EABI

Generic term for an ABI adapted for embedded use.

###### EBCDIC

Extended Binary Coded Decimal Interchange Code, a character set used by IBM before its open-systems policy, allegedly adapted from punched card code.

###### ECOFF

Extended COFF, a format used with MIPS and Alpha processors, both for workstations and embedded uses.

###### eCos TM

Embedded Cygnus Operating System, a complete, open-source run-time environment, allowing embedded system developers to focus on differentiating their products instead of developing, maintaining, or configuring proprietary, real-time kernels.

###### EGCS

GNUPro compiler tool, EGCS is the actual name for the current version of the GNU compiler, version 1.1.2; EGCS is pronounced "eggs" with the "C" silent.

###### ELF

Extended Linker Format. Appeared with UNIX SVR4 and used on many systems, including Solaris/ SunOS, Irix, and Linux. Many embedded systems also use ELF.

###### Emacs

A programmable text editor (derived from "Editing MACroS"), including facilities to run compilation subprocesses and send and receive mail. Originally written by Richard Stallman at the MIT AI lab.

###### embedded development

Using software applications with cross-configuration (working with a different target machine than the development tools themselves,which run on the host)--for example, a SPARC generating and debugging code for a Motorola Power PC-based board.

###### encryption

Use of algorithms to alter data, making it incomprehensible to unauthorized viewers.

###### end point

Device at which a virtual circuit or virtual path begins or ends.

###### enterprise network

Large and diverse network connecting most major points in an organization.

###### EEPROM

Electrically Erasable Programmable Read-Only Memory .

###### EPROM

Erasable Programmable Read-Only Memory , non-volatile memory chips that are programmed after they are manufactured, and, if necessary, made erasable and reprogrammed. Compare with EEPROM and PROM.

###### exception

An event during program execution that prevents the program from continuing normally; generally, an error.

###### exception handling

Event that occurs when a block of code reacts to a specific type of exception. If the exception is for an error from which the tool, the debugger, for instance, can recover, the debugger resumes its process.

###### executable file

A binary-format file containing machine instructions in a ready-to-run form.

###### expansion

The process of running a compressed data set through an algorithm that restores the data set to its original size.

###### expressions

A specification for an address or numeric value. An empty expressionhas no value (being either whitespace or null). An integer expressionis one or more arguments delimited by operators. Arguments can use symbols, numbers or sub-expressions. Sub-expressionshave a parenthetical usage containing an integer expression, or they are a prefix operator followed by an argument. See Using `as` in the GNUPro Utilities documentation for more discussion of these subjects.

###### `expect`

A program that allows scripted control over another program.

## F

###### `flex`

The GNU lexical analyzer generator.

###### floating-point

A number representing a mantissa (usually, a value between 0 and 1) and an exponent according to a given base (usually, 2).

###### floating-point notation

Numeric system used to represent very large and very small real numbers. With two parts, a mantissa and an exponent; for example, 153,000,000 and 0.0009375 have the floating point notation, respectively, of 153E4 and 9375E-7. See also FLOPS.

###### FLOPS

Floating-point operations per second, a measure of computer's speed of performing floating-point operations. Compare MIPS.

###### foo/ foobar/foo.bar/.bar

Used very generally as a sample name for absolutely anything, especially programs and files. Etymology from Army slang acronym, FUBAR (bowdlerized to mean "Fouled Up Beyond All Repair").

###### FreeBSD

A free UNIX operating system for PCs. See BSD .

###### FTP/ `ftp`

File Transfer Protocol, based on TCP/IP, which enables getting and storing files between hosts on the web.

###### function

Segments of C or C++ programming languages which provide a means for a program to transfer and to generate data in a modular way. A program can have many functions but only one `main` function to which all other functions address. See also program.

## G

###### garbage collection

The automatic detection and freeing of memory that is no longer in use. A runtime system performs garbage collection so that programmers never explicitly free objects.

###### `gas`

Acronym for the GNU assembler. Interchangeably used with capitalization, as GAS.

###### `gcc`

Acronym for the GNU C compiler. Interchangeably used with capitalization, as GCC.

###### `gcj`

Front end to GCC that is able to read Java ``.class` ' files, generating assembly code.

###### `gcjh`

A program to generate C++ header files corresponding to Java ``.class`' files.

###### `gdb`

Acronym for the GNU debugger. Interchangeably used with capitalization, as GDB.

###### `gdbtk`

See Cygnus Insight.

###### `glibc`

GNU ANSI C library, a fully POSIX and ANSI compliant C library, more suited to native UNIX systems and heavily used for Linux. See newlib.

###### global variable

Any variable external to a function. See also local variable.

###### GNU

Recursive acronym for GNU's Not UNIX. A project to build a free operating system, started by Richard Stallman in 1985, with many useful spinoffs, such as the Emacs text editor, a C compiler (gcc or egcs), a debugger (gdb), and many other programming tools.

###### GO32

Freeware 32-bit DOS extender. Also the Cygnus name for GNU tools ported to DOS using GO32. See DJGPP.

###### GUI

Graphical User Interface, which refers to an interface and the techniques involved in using a keyboard or a mouse, for instance, to provide an easy-to-use interface to some software. Arguments ensue over the pronunciation ("gooey" or "gee-you-eye").

## H

###### `h8300`

Cygnus name for Hitachi's H8/300 family of microprocessors, including H8/300, H8/300H and H8/S.

###### hacker

A person who enjoys exploring the details of programmable systems and how to stretch their capabilities. Also, one who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming.

###### hacker ethic

Belief that information-sharing is a powerful positive good, and that it is an ethical duty of hackers to share their expertise by writing free software and facilitating access to information and to computing resources wherever possible.
Also, the belief that system-cracking for fun and exploration is ethically correct as long as the cracker commits no theft, vandalism, or breach of confidentiality.

###### `hex` / hexadecimal

The numbering system that uses 16 as its base. The code signified by `0` through`9` and `a` through`f` (or equivalently `A` through`F` ) represents the digits, 0 through 15.

###### host

The computer on which the compiler runs.

###### HPPA

Cygnus name for Hewlett Packard's PA architecture.

###### HP/UX/ `hpux`

Hewlett Packard's version of UNIX for Motorola 68000 and PA architectures. Versions include 7, 8, 9, 10, and 11. Interchangeably designated as "HP-UX" in the industry. `hpux` is the Cygnus usage.

## I

###### `i370`

Cygnus name for the IBM 370 mainframe computer.

###### `i386`

Cygnus name for the 32-bit members of the Intel `x`86 family. Members include 386, 486, Pentium ("i586"), and Pentium Pro ("i686").

###### `i860`

Cygnus name for an obsolete family of Intel RISC processors.

###### `i960`

Cygnus name for Intel's 80960 family of RISC processors.

###### ICE

In-Circuit Emulator, a hardware device that gives an engineer control over the execution of a processor while it's connected to the rest of a system's circuitry. Emulators are powerful hardware debugging tools that can connect to debuggers.

###### IDE

Integrated Development Environment, a GUI tool or a set of tools that uses GUI functionality.

###### ILU

Inter-Language Unification, a partial CORBA implementation from Xerox PARC, allowing programs to associate.

###### `include`files

Often designated as `#include`files, using or assigning duplication of a portion (or whole) of another file, sometimes leading to excessive multi-leveled inclusion (as within a newsgroup's discussion thread, a practice that tends to annoy readers).

###### Insight

The GNUPro visual debugger, Cygnus Insight (formerly known as GDBTk).

###### interpreter

A module that alternately decodes and executes every statement in some body of code.

###### IP

Internet Protocol, the basic protocol of the Internet, enabling the delivery of individual packets from one computer to another across the web. A packet may not be instantly delivered, or if multiple packets are sent simultaneously, they may not simultaneously arrive in the order they were sent. Protocols built on top of this add the notions of connection and reliability. See also TCP/IP.

###### ISA

Instruction Set Architecture.

###### Irix

SGI's version of UNIX for MIPS architectures. Versions include 4, 5, and 6.

## J

###### JavaTM

An object-oriented, "write once, run anywhere" programming language, developed by Sun Microsystems. Originally called "OAK" (and meant for handheld devices), its purpose is for using with JVM on the World Wide Web (see `http://java.sun.com/`). For further reference, see The Java Language Specification by James Gosling, Bill Joy and Guy Steele (Addison Wesley, 1996; ISBN 0-201-63451-1).

###### `jcf-dump`

Reads a ``.class` ' Java-type file and prints out all sorts of useful information.

###### JDKTM

A software development environment for writing applets and applications in the JavaTM programming language, developed by Sun Microsystems.

###### JIT

Just-in-time compiler that converts all of the bytecode into native machine code just as a Java program is run, resulting in run-time speed improvements over code interpreted by a Java Virtual Machine (JVM).

###### JTAG

Joint Test Advisory Group, referring to a type of hardware interface that allows the testing of chips and boards within a complete system; programs running on processors with JTAG support may be controlled through the processor's JTAG port.

###### `jvgenmain`

A small program to generate an appropriate ``main`' for a Java class.

###### JVM

Java Virtual Machine, part of the Java Runtime Environment responsible for interpreting Java bytecodes.

###### `jv-scan`

Reads a ``.java`' file and prints some useful information, such as for instance, which classes are defined in that file.

## K

###### Knuth

A safe answer. From Donald E. Knuth's "The Art of Computer Programming," a reference that answers all questions about data structures or algorithms. There is a Donald Knuth home page: `http://www-cs-faculty.Stanford.EDU/~knuth`.

###### K & R

From Brian Kernighan and Dennis Ritchie's book, "The C Programming Language," (Prentice-Hall, 1978; ISBN 0-113-110163-3), referring to the pre-ANSI version of the C programming language, as written and invented by Kernighan and Ritchie.

###### kluge

A clever and hopefully temporary programming trick intended to solve a particularly difficult problem in an expedient, if not clear, manner. Often used to repair bugs.
Also kludge. From the German `klug,' a clever thing; possibly related to the Polish word, `klucza,' a trick or hook.

## L

###### `ld`/LD

The GNU linker. Interchangably used with capitalization, as LD. See linker.

###### lexical

How the characters in source code are translated into tokens that the compiler can understand.

###### lexical scoping

Nested functions that can access all the variables of the containing function that are visible at the point of its definition.

###### LGPL

Library GNU Public License.

###### `libopcodes`

GNU library for manipulating machine opcodes. Its main use is disassembling binary files. Distributed under the GPL, this is currently only used by the GNU binary utilities, the GNU assembler and the GNU debugger.

###### `libreadline`

This is the GNU command line editing program, and it is distributed under the GPL. This library implements full Emacs or vi key bindings with history support. At Cygnus, this is currently only used by GDB.

###### `libbfd`

This is the GNU object file manipulation library, and is distributed under the GPL. `libbfd` is used by the GNU debugger, assembler, linker, and the binary utilities. It can read and write files in any supported object file format, and presents a somewhat loosely defined standard for manipulating object files.

###### `libide`

This is the Cygnus IDE library, a collection of useful procedures, mostly all related from Tcl/Tk development. These functions will be useful for all GUI applications. As they are Tcl/Tk code, all are portable between NT, UNIX and MacOS operating systems.

###### linker

A tool that merges object files and library archives (such as compiled classes), building an executable, a complete program or a single executable file. For GNUPro Toolkit, the linker is the `ld`tool.

###### linker script

A set of programmer-supplied instructions that tell the linker how to handle object file sections, how to lay out memory, and so forth. For native linking, the contents of the linker script are normally determined by the needs of the operating system; for embedded targets, the programmer explicitly supplies the linker script.

###### Linux

A free UNIX operating system for many kinds of computers, created by Linus Torvalds and friends starting about 1990 (the pronunciation of /lee-nuhks/ is preferred, accenting the first syllable, since the name Linus has an /ee/sound in Swedish).

###### LISP

LIS t P rocessing language, based on the ideas of variable-length lists and/or trees as fundamental data types, and the interpretation of code as data (and vice-versa). Invented by John McCarthy at MIT in the late 1950s.

###### literal

The basic representation of any integer, floating point, or character value. For example, 3.0 is a single-precision floating point literal, and "`a`" is a character literal.

###### local variable

A data item known within a block, but inaccessible to code outside the block. For example, any variable defined within a Tcl method is a local variable and can not be used outside the method.

###### little-endian

A byte-ordering scheme, such as used by the Intel `x`86 family, which is all little-endian. Describes a computer architecture in which, within a given 16- or 32-bit word, bytes at lower addresses have lower significance (the word is stored little-end-first). See also big-endian.

## M

###### `m68k`

Cygnus name for Motorola's 68000 family of microprocessors. Depending on context, the abbreviation may include the CPU32 and ColdFire families as well. Members include 68000, 68020, 68030, 68040, 68060, 68302, 68332, 5200.

###### `m88k`

Cygnus name for Motorola's 88000 family of RISC microprocessors, now discontinued.

###### Mach

An operating system developed at Carnegie-Mellon.

###### machine registers

Used for general-register (for intermediary and temporary results), index register (for arithmetic operation and addressing memory), pointer register (for arithmetic operation and addressing memory), and segment register (for built-in memory management) purposes.

###### `make`

The GNU reconfiguration utility for automating recompilation, linking, etc., of programs, taking account of the interdependencies of modules and their modification times. `make` reads instructions from a makefile, Makefile, which specifies a set of targets to build, a set of files on which the targets depend and the commands to execute in order to produce them. If `make` is run with no arguments, it looks for a makefile, Makefile . For historical purposes, see also Make: A Program for Maintaining Computer Programs by A.I. Feldman (a Bell Labs publication).

###### Makefile

A specific script which tells a UNIX program, `make` , how to build a particular computer program or set of programs. A makefile contains variable assignments and rules that which, with input, say if any files have been modified more recently than a target file (or if the target does not exist), then execution of specific commands will normally bulid the target from the inputs. For an example of a makefile, see A simple makefile and Writing makefiles with Using `make` in the GNUPro Utilities documentation.

###### makefile

File run by `make` , the reconfiguration utility.

###### mangling/ name-mangling

The process by which C++ types and classes are turned into symbols in object files that are compatible with other languages.

###### mingw32

Minimal GNU-Win32, a configuration of the GNU-Win32 tools that avoids the UNIX emulation of Cygwin (formerly known as `cygwin32`).

###### Minix

A tutorial version of UNIX, written by Andy Tanenbaum and described in his textbook. Minix is said to have been the inspiration for Linux.

###### MIPS

Millions of instructions per second, a measurement of processing speed.

###### `mips`

Cygnus name for the MIPS family of RISC processors. Members include R2000, R3000, R4000, R5000, R8000, R10000, and TinyRISC. There are many vendors of MIPS parts, each using a distinct naming scheme, such as VR4 xxx for NEC, and TX39`xx` for Toshiba parts.

###### MIT

Massachusetts Institute of Technology, the birthplace of the Artificial Intelligence (AI) Laboratory and the Tech Model Railroad Club (TMRC), one of the wellsprings of hacker culture. Notably, the main location of GNU conception.

###### MON960

Intel's ROM monitor for their i960 processor.

###### multilibs

A collection of libraries built with different GNU compiler options, for target processors having several variants that require changes in code generation, one for each variant. This ensures that a program using `-msoft-float` (enabling software floating point functionality) will link with libraries built using the same option.

###### multithreading

Functionality of a program that is designed to have parts of its code execute concurrently. See also thread.

###### Multics

MULTiplexed Information and Computing Service , an early (late 1960s) timesharing operating system co-designed by a consortium including MIT, General Electric, and Bell Laboratories.

###### munge

To make changes to a file, irrevocably, such as a comprehensive rewrite of a routine, data structure or a whole program. Often an unintentional process of corrupting a file or memory block so that it's unusable, unreadable, unviewable or unrecoverable.

## N

###### name-mangling

The process by which C++ types and classes are turned into symbols in object files that are compatible with other languages.

###### namespaces

An ANSI/ISO standard in development for the C++ libraries, allowing users to identify the scope for selecting specific functions by class or type from separate libraries, while still being able to let libraries work together and separately.

###### NCSA

National Center for Supercomputer Applications, which produced many popular programs, including Mosaic and a version of telnet (which became Netscape).

###### nested function

A function defined inside another function. See also lexical scoping.

###### NetBSD

A free UNIX operating system for PCs and other kinds of computers. See also BSD.

###### newlib

Cygnus two C libraries, `libc` (C library), and `libm` (C math library) for embedded systems work.

###### newline

The ASCII `LF` character (for 0001010), used under UNIX as a text line terminator. See also `CRLF`.

###### NINDY

An obsoleteROM monitor for the i960.

###### NOP

A machine instruction that does nothing (sometimes used in assembler-level programming as filler or for overwriting code to be removed in binaries).

###### NRE

Non-Recurring Engineering , typically used to refer to one-time-only development, such as re-targeting to a new architecture or adding a feature.

###### ns32k

Cygnus name for the National Semiconductor 32000 family of processors.

## O

###### object

The principal building blocks of object-oriented programs. Each object is a programming unit consisting of data variables and functionality. See also classes.

###### object file

A binary-format file containing machine instructions and possibly symbolic relocation information. Typically produced by an assembler.

###### object file format

The layout of object files and executable files. Common formats include a.out, COFF, and ELF.

###### OSF/1

The Open Software Foundation's version of UNIX, used in Digital's Alpha machines.

###### overflow bit

A flag on some processors indicating an attempt to calculate a result too large for a register to hold.

## P

###### PA

Name for Hewlett-Packard's family of Precision Architectureprocessors.

###### patch

A change in source code to correct or enhance processes. Also a file that contains changes to source code; specifically, the results of a differentiation and comparison between the new file(s) and the old file(s). See `diff` and bug .

###### path

A filename, fully specified relative to the root directory (as opposed to relative to the current directory; the latter is sometimes called a ` relative path'). This is also called a pathname or full path. With UNIX and MS-DOS, the search path uses an environment variable, specifying the directories in which the shell ( Command.com , under MS-DOS) should look for commands. Other similar constructs abound under UNIX (for example, the C preprocessor has a search path it uses in looking for `#include`files).

###### PDP

Programmed Data Processor , the machine that made timesharing real, adopted by many university computing facilities and research labs, including MIT, Stanford, and Carnegie-Mellon. Some aspects of the instruction set (most notably the bit-field instructions) are still considered unsurpassed. The PDP-10 was eventually eclipsed by the VAX machines (descendants of the PDP-11) when DEC recognized that the 10 and VAX product lines were competing with each other and decided to concentrate its software development effort on the more profitable VAX. The machine was finally dropped from DEC's line in 1983, following the failure of the Jupiter Project at DEC to build a viable new model.

###### PE

Portable Executable, Microsoft's object file format for Windows 95 and NT operating systems. It is basically COFF with additional header information.

###### PPC

PowerPC family of RISC processors, designed jointly by IBM and Motorola. Versions include the 601, 604, 401, 403, 750, 801, and 860 processors.

###### PPC bug

ROM monitor from Motorola.

###### program

A piece of software that produces something; for instance, you create, compile and then link a software program file, `foo.exe`. Type ``foo`' at the shell window's prompt. Your operating system will call the `main()` function of the program, the program runs and, when it finishes, control goes back to the system. A typical example in most C and C++ books would be the following code, that prints "`Hello.`" on a system monitor's shell window. See also compiler and function .

    //

    // A program to print Hello. on the terminal.

    //

    // Header file for all the iostream input--output stuff.

    //

    #include <iostream.h>

    //

    // The main function.

    //

    void main()

    {

        cout << "Hello." << endl ;

    }

###### PROM

Programmable Read-Only Memory, ROM that can be programmed using special equipment. PROMs can be programmed only once. Compare with EPROM.

###### `ps`

The commandline option for enabling UNIX-like functionality in Windows-type systems.

###### pseudo-ops

Assembler directives.

###### pseudo registers

Pseudo registers can only contain scalar variables that cannot be aliased. This means that global variables, local variables that have their addresses taken, and aggregates (such as structures and unions) cannot be stored in pseudo registers, and thus they must be accessed with separate load and store instructions. Because of the guarantee that pseudo registers are not aliased, they are ideal targets for optimization.

###### ptrace

The UNIX system call, traditionally used by debuggers to control other UNIX processes. `ptrace` arguments may include commands to read/write registers, single-step, etc.

## Q

No entries.

## R

###### RAM

Random-Access Memory, referring to volatile memory that can be read and written by a microprocessor.

###### `rc`file

`runcom`files , using a startup script file that contains startup instructions for an application program (or an entire operating system), usually a text file containing commands of the sort that might have been invoked manually once the system was running but are to be executed automatically each time the system starts.

###### RDI

Remote debugging library, used by ARM.

###### RDP

Remote Debugging Protocol, a protocol used with ARM's Demon monitor.

###### reentrancy

A characteristic of library functions which allows multiple processes to use the same address space with assurance that the values stored in those spaces will remain constant between calls. Cygnus made the `libm` library functions, ensuring that, whenever possible, they are reentrant.

###### registers

Registers are settings representing values that serve as temporary storage devices in a processor, allowing for faster access to data. Registers are divided into several classes: pseudo registers, temporary registers, and machine registers.

###### remote target

See target.

###### RFC

Request For Comment (s), one of a long-established series of numbered Internet informational documents and standards widely followed by commercial software and freeware in the Internet and UNIX communities.

###### RISC

Reduced Instruction Set Computer, machines typically having fixed-length instructions, limited addressing modes, many registers, and visible pipelines. Examples include MIPS, ARM, SH, PowerPC.

###### ROM

Read-Only Memory, non-volatile memory that can be read, but not written, by the microprocessor.

###### root

In a hierarchy of items or of separate files in a directory, the one item or directory from which all other items or directory paths descend. Also the name of the primary administrative account on UNIX and other machines.

###### router

Network device that determines the optimal path along which network traffic should be forwarded, using packets from one network to another based on network layer information.

###### rsh

Remote shell protocolthat allows a user to execute commands on a remote system without having to log in to the system.

###### RS6000

IBM's RS/6000 family of RISC processors. Depending on context, this term may also include PowerPC systems.

###### RTEMS

A real-time operating system.

###### RTI

The mnemonic for the ``return from interrupt`' instruction on computers.

###### RTOS

Real-Time Operating System.

###### run-time memory

Memory accessed while a program runs.

###### runtime system

The software system or environment in which compiled programs can run. The runtime system includes all the code necessary to load programs, dynamically link native methods, manage memory, handle exceptions, and an implementation of what may be an interpreter.

## S

###### SCO

Santa Cruz Operation, a vendor of SVR3UNIX and more recently Unixware for PCs.

###### scope

Rules determining where a name is usable, such as a function or variable name (the general rule being that a name can be used from the point of declaration to its innermost enclosing compound statement).

###### screaming tty

A terminal line that disgorges an infinite number of random characters at an operating system. See also tty.

###### section

Object files and executables that are composed of sections, having optional data and optional relocation information.

###### segmentation fault

An error in which a running program attempts to access memory not allocated to it and core dumps with a segmentation violation error.

###### selective linking

When configuring libraries, the linker's usage of source in libraries, whereby the linking explicitly includes those libraries in the linking instruction.

###### SGML

Standardized Generalized Markup Language, an ISO/ANSI/ECMA standard that specifies a way to annotate text documents with information about types of structure for a document.

###### sh/SH

Cygnus name for the Hitachi Super-H family of RISC microprocessors. ISAs include SH-1, SH-2, SH-3, SH-3e, SH-DSP, and SH-4; within each ISA, parts have numbers like SH7032 or SH7780.

###### shared libraries

A library of functions used by many executables without having been linked into each executable.

###### shell

An interface program for accessing resources and for performing tasks. The original Multics shell ran programs by starting processes that were dynamically linking programs into existing code, calling them as subroutines (see stub) and dynamically de-linking them on return.
The main shell scripts used are `ash`, `bash`, `csh` , and `sh`.

###### simulation

A means to interpret, classify and present information about an embedded system's behaviour that is being modeled, comprising both hardware and software elements.

###### Solaris

Sun's current version of UNIX, superseding SunOS. Based on SVR4UNIX. Sun officially calls it SunOS 5.x , with versions including 2.0-2.6, 7.0 (or, as Sun refers to them, 5.0-5.6, 7.0).

###### Source Navigator

A source code comprehension tool with which developers can extract information from existing code in C, C++, Java, Tcl, `[incr tcl]` (the C++ extension for Tcl), FORTRAN, Cobol, and assembly programs, using this information to build project databases. The database represents internal program structures and relationships between program components. Source Navigator then uses this database to query symbols and relationships between components and graphically display them.

###### sparc/SPARC

Cygnus name for the family of RISC processors based on Sun's SPARC architecture. Members include SPARClite, SPARClet, UltraSPARC, versions 7-9.

###### SPARClet

An embedded SPARC processor from T.Sqware (formerly Matra).

###### SPARClite

An embedded SPARC processor family from Fujitsu. Members include 86930, 931, 932, 933, 934, and 936.

###### S-record

A binary download format, consisting of a series of records, each beginning with `S`, with symbolicdata encoded as hexadecimal digits. Before downloading to a board, for instance, a program must be converted using S-records.

###### stabs

Based on symbol tables, a debug format originally introduced with the Berkeley UNIX system, which records debugging information in certain symbols in the object file's symbol table. `stabs` information may also be encapsulated in COFF or ELF files.

###### stack

The contiguous parts of the data associated with one call to a specified function in a frame. The frame contains the arguments given to the function, the function's local variables, and the address at which the program is executing. In "The Art of Computer Programming" [2nd edition, vol. I, pg. 236], Donald Knuth writes, "Many people who realized the importance of stacks and queues independently have given other names to these structures: stacks have been called push-down lists, reversion storages, cellars, nesting stores, piles, last-in-first-out ("LIFO") lists, and even yo-yo lists!"

###### stack frame

When debugging, the location of a function call, arguments about the call and called local variables, are within a block of data called the stack frame. Stack frames are allocated in a region of memory called the call stack. When stopping a program or when a program stops, debugging commands for examining the stack allow seeing all this information.

###### STL

Standard Template Library, a C++ library. For more information, see `www.stl.org` or the following URL:
http://phobos.nsrl.rochester.edu/liu/stl.html

###### stub

A small piece of code that executes on the target and communicates with the debugger, acting as its agent, collecting registers, setting memory values, etc. Also, in a native shared library system, the part of the shared library that actually gets linked with a program. See also subroutine.

###### subroutine

Part of a program which calls another part of a program so that developers can simplify code in their programs and save memory.

###### sun4

Informal name for a SPARC workstation running SunOS 4. x .

###### SunOS

Sun's former version of UNIX, derived from BSD 4.3. Versions include 2, 3, 4.0, 4.1, 4.1.3, 4.1.4. Sun currently refers to Solaris 2.x versions as SunOS 5. x .

###### SVID

System V Interface Definition, defining interfaces and partitioning components within System V environments.

###### SVR3

System V Release 3, the third version of UNIX for the AT&T 3B2.

###### SVR4

Acronym for System V Release 4, the fourth version of UNIX for the AT&T 3B2. Currently owned by SCO, after being owned by Novell.

###### swapping

Moving blocks of information in units known as pages between memory and disk as necessary during execution of an application; for instance, moving data from fast-access memory to a slow-access memory (swap out) or reverse (swap in). Supported by operating systems such as Linux, Windows NT/95/98, and OS/2, the process of exchanging two values--for example, exchanging values between two variables. Especially for use as temporary storage during reconfiguration.

###### symbols

Symbols are used to refer to variables, labels, and procedures in a program; basically, symbols are names and addresses. Typically every global function and variable in a C program will have an associated symbol.

###### System V

A UNIX operating system.

## T

###### target

The computer for which the compiler generates code. Used both to refer to an actual physical device, and to the class of devices.

###### Tcl/Tk

The code language used to develop an IDE. Tcl/Tk is a programming system developed by John Ousterhout. Easy to use with very useful graphical interface facilities, Tcl is the basic programming language while Tk is a "Toolkit" of widgets (graphical objects similar to those of other GUI toolkits, such as Xlib, Xview and Motif). Unlike many of the other toolkits, it is not necessary to use C or C++ in order to manipulate the widgets, and useful applications can be built very rapidly with Tcl/Tk.

###### TCP/IP

Transmission Control Protocolbased on IP. This is an internet protocol that provides for the reliable delivery of streams of data across the web.

###### telnet

Standard terminal emulation protocol in the TCP/IP protocol stack, used for remote terminal connection, enabling users to log in to remote systems, thereby using resources as if connected to a local system.

###### temporary registers

Temporary registers are used to hold intermediate results of computations within a basic block. Each temporary register must be defined and used in exactly one place, and never assign a value to a temporary register that is never used, and do not use the value in a temporary register more than once.

###### ternary

System using three as the base, such as a ternary logarithm.

###### TEX

An extremely powerful macro-based text formatter written by Donald E. Knuth. Pronounced "tech."

###### Texinfo

A text formatting tool with various output formats such as HTML and PostScript.

###### TMRC

The Tech Model Railroad Club at MIT, the legendary control system that featured about 1200 relays. Steven Levy, in his book, Hackers, gives a stimulating account of those early years; see:

    http://www.echonyc.com/~steven/hackers.html

###### toolchain

Informal term for the collection of programs that make up a complete set of compilation tools. Typically consists of the following example's sequence:
compiler->assembler->archiver->linker->debugger.

###### thread

The basic unit of program execution. A process can have several threads running concurrently, each performing a different job, such as waiting for events or performing a time-consuming job that the program doesn't need to complete before resuming. When a thread has finished its job, the thread is suspended or destroyed.

###### three-way cross

See Canadian cross .

###### Thumb

The 16-bit instruction frontend available with some ARM processors.

###### tracepoint

A hit during a debugging process.

###### trampolines

On-the-fly generation by a compiler (such as GCC) of small executable code objects that do indirection between code sections, taking the address of a nested function.

###### triple cross

See Canadian cross.

###### twiddle

A small and insignificant change to a program. Derived from squiggle, or in ASCII shorthand, tilde (for the ASCII character definition, 1111110, of the character, `~` ).

###### tty

Any serial port, whether or not the device connected to it is a terminal; so called because under UNIX such devices have names of the form, `tty*`. Its derivation is from "teletype."

## U

###### UDI

Universal Debug Interface, a debugging protocol used only by AMD, and only for the `a29k` architecture.

###### Unicode

A 16-bit character set defined by ISO 10646.

###### URL

Uniform Resource Locator , the standard for writing a text reference to an arbitrary piece of data over the Internet. A URL looks like "`protocol://host/localinfo` " where `protocol` specifies a protocol to use to get the object (like `http` or `ftp` ), `host` specifies the Internet name of the host on which to find it, and `localinfo` is a string (often a file name) passed to the protocol location on the remote host.

###### unary

Having, consisting of, or acting on a single component.

###### UNIX

UNIX operating system. The lowercase spelling of `Unix' is used interchangeably. Invented in 1969 by Ken Thompson after Bell Labs left the Multics project, UNIX subsequently underwent mutations and expansions at the hands of many different people, resulting in a uniquely flexible and developer-friendly environment. By 1991, UNIX had become the most widely used multiuser general-purpose operating system in the world.

###### Unixware

Name for the version of UNIX based on SVR4, produced by Novell.

## V

###### variables

A variable is a name used in a program to stand for a value. Global variableshave one value at a time, and this value is in effect for the whole system. Constant variableshave values that never change. Local variableshelp create variable values that exist temporarily while within a certain part of the program; these values are called local , and the variables so used are called local variables. For example, when a function is called, its argument variables receive new local values that last until the function exits. Void variablesuse symbols that lack values.

###### vax / VAX

Virtual Address eXtension, Digital's popular CISC minicomputer of the 1980s, the most successful minicomputer design in industry history, possibly excepting its immediate ancestor, the PDP-11. Between its release in 1978 and its eclipse by killer micros after about 1986, the VAX was probably the hacker's favorite machine of them all, especially after the 1982 release of 4.2 BSD UNIX (see BSD, CISC and PDP).

###### vi

Visual Interface , a screen editor crafted together by Bill Joy for an early BSD release. Became the de facto standard UNIX editor and a nearly undisputed hacker favorite (arguably) outside of MIT until the rise of Emacs after about 1984.

###### VFS

Virtual File Systemarchitecture.

###### virtual machine

An abstract specification for a computing device that can be implemented in different ways, in software or hardware. Compiling to the instruction set of a virtual machine is much like compiling to the instruction set of a microprocessor, using a bytecode instruction set, a set of registers, a stack, a garbage-collected heap, and an area for storing methods.

###### VxWorks

A real-time operating system from Wind River Systems.

## W

###### watchpoint

A special breakpoint that stops a program's debugging process when the value of an expression changes.

###### whitespace

In code, newlines, spaces and tab characters which the compiler treats as a contiguous, single character. An instance that is unnoticable for the program output, and only as formatting for human readability.

###### widget

The components of software by which we get many of the interface features that provide interoperability, such as the scrollbars or the means of selecting text with a cursor or pointer, using object-oriented programming.

###### worm

A program that propagates itself over a network, reproducing itself as it goes (the famous "Great Worm of 1988" is the best-known example; Robert T. Morris's 1988 virus, a benign one that got out of control and hogged hundreds of Sun and VAX systems across the U.S.).

###### WWW

World Wide Web, the web of systems and the data in them that is the Internet.

## X

An allegedly "over-sized, over-featured, over-engineered and incredibly over-complicated" window system (having a lot of widgets) developed at MIT and widely used on UNIX systems. With its sources freely available, it is a vehicle that is widespread since developers can modify and customize it according to their requirements.

###### x86

Cygnus name for Intel's 80x86 processor chip family (the first chip from Intel being the 80x86).

###### XCOFF

eXtended COFF, IBM's object file format for RS/6000 and PowerPC systems.

###### XENIX

Microsoft version of SVR4.

###### XEROX PARC

The famed Palo Alto Research Center which, for more than a decade, from the early 1970s into the mid-1980s, yielded an astonishing volume of groundbreaking hardware and software innovations. The mouse, windows, and icon-type software interface was invented there, as well as the laser printer, the local-area network ( LAN), and a series of D-machines that anticipated the personal computers of the 1980s by a decade.

###### xor-endian

A way of implementing a big-endian ISA. See MIPS and PowerPC for example members.

## Y

###### yacc

GNU parser generator.

## Z

###### z8k

Cygnus name for the Z8000, a long-obsolete 16-bit descendent of the Z80 8-bit microprocessor.

Top|Contents|Previous|Next